package com.ruoyi.leaveManage.vo;

import com.ruoyi.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;



/**
 * 请假信息视图对象 mall_package
 *
 * @author ruoyi
 * @date 2021-04-26
 */
@Data
@ApiModel("请假信息视图对象")
public class LeaveVo {
	private static final long serialVersionUID = 1L;

	/** 请假ID主键 */
	@ApiModelProperty("请假ID主键")
	private Long leaveId;

	@ApiModelProperty("主键ID")
	private Long leaveUserId;

	/** 用户ID */
	@Excel(name = "用户ID")
	@ApiModelProperty("用户ID")
	private Long userId;

	/** 学号 */
	@Excel(name = "学号")
	@ApiModelProperty("学号")
	private String  StudentId;

	/** 学号 */
	@Excel(name = "年级")
	@ApiModelProperty("年级")
	private String  grade;

	/** 学号 */
	@Excel(name = "学院")
	@ApiModelProperty("学院")
	private String  college;

	/** 学号 */
	@Excel(name = "专业")
	@ApiModelProperty("专业")
	private String  major;


	/** 姓名 */
	@Excel(name = "姓名")
	@ApiModelProperty("姓名")
	private String userName;

	/** 请假类型  0事假 1病假 2实习 3其他 */
	@Excel(name = "请假类型")
	private String leaveType;

	/** 请假类型  0事假 1病假 2实习 3其他 */
	@ApiModelProperty("请假类型  0事假 1病假 2实习 3其他")
	private Long type;

	/** 健康状况 */
	@Excel(name = "健康状况")
	@ApiModelProperty("健康状况")
	private String healthCondition;

	/** 去往地 */
	@Excel(name = "去往地")
	@ApiModelProperty("去往地")
	private String destination;

	/** 上传资料照片 */
	@Excel(name = "上传资料照片")
	@ApiModelProperty("上传资料照片")
	private String image;

	/** 本人联系方式 */
	@Excel(name = "本人联系方式")
	@ApiModelProperty("本人联系方式")
	private String selfPhone;

	/** 时长 */
	@Excel(name = "时长")
	@ApiModelProperty("时长")
	private Long hour;

	/** 紧急联系方式 */
	@Excel(name = "紧急联系方式")
	@ApiModelProperty("紧急联系方式")
	private String backupPhone;

	/** 请假开始时间 */
	@Excel(name = "请假开始时间" , width = 30, dateFormat = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("请假开始时间")
	private Date startTime;

	/** 请假结束时间 */
	@Excel(name = "请假结束时间" , width = 30, dateFormat = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("请假结束时间")
	private Date endTime;
	/** 撤销 */
	private Integer leaveRevoke;
	/** 请假事由 */
	@Excel(name = "请假事由")
	@ApiModelProperty("请假事由")
	private String remark;

	/** 导员审批状态 0待审核1已通过2已驳回 */
	@Excel(name = "导员审批状态")
	private String approveGuideStatus;

	/** 导员审批状态 0待审核1已通过2已驳回 */
	@ApiModelProperty("导员审批状态")
	private Long approveStatusGuide;

	/** 导员审批人 */
	@Excel(name = "导员审批人")
	@ApiModelProperty("导员审批人")
	private String approveByGuide;

	/** 领导审批状态 0待审核1已通过2已驳回 */
	@Excel(name = "领导审批状态")
	private String approveLeadingStatus;

	/** 领导审批状态 0待审核1已通过2已驳回 */
	@ApiModelProperty("领导审批状态")
	private Long approveStatusLeading;

	/** 领导审批人 */
	@Excel(name = "领导审批人")
	@ApiModelProperty("领导审批人")
	private String approveByLeading;
	/** 驳回理由 */
	@ApiModelProperty("驳回理由")
	private String rejectReason;
	/** 创建时间 */
	@Excel(name = "创建时间")
	@ApiModelProperty("创建时间")
	private Date createTime;
	/** 销假状态 0未销假 1已销假 */
	@Excel(name = "销假状态 0未销假 1已销假")
	@ApiModelProperty("销假状态")
	private Long cancellationStatus;

	public void longString(){
		this.leaveType=this.type==0?"事假":this.type==1?"病假":this.type==2?"实习":"其他";
		this.approveGuideStatus=this.approveStatusGuide==0l?"待审核":this.approveStatusGuide==1l?"已通过":"已驳回";
		this.approveLeadingStatus=this.approveStatusLeading==0l?"待审核":this.approveStatusLeading==1l?"已通过":"已驳回";
	}



}
